AWS SDK - 如何创建 lambda 函数以从用户池中列出组?

AWS SDK - how to create a lambda function to listGroups from user pool?

我是 AWS Lambda Functions 的新手,我想创建一个新函数来从 Amplify 生成的我的 Cognito 用户池中获取用户组,我看到了很多示例,但我认为到目前为止我的函数不起作用我可能缺少一些许可,我不确定。这是我的功能:

const AWS = require('aws-sdk');

exports.handler = async (event) => {
    let cognito = new AWS.CognitoIdentityServiceProvider();
    const params = { UserPoolId: 'us-east-1_xxxxxxx'};
    
    let res = { status: 'no changes' };
    
    cognito.listGroups(params, function(err, data) {
      console.log('inside of response')
      if (err) {
        res = { error: err };
      }
      else {
        res = { data: data };
      }
      
    })
    
    const response = {
      statusCode: 200,
      body: JSON.stringify(res),
    };
    return response; 
};

我已经在

之后添加了权限

我正在按照 the API docs here 调用 Cognito listGroups 方法。

对于权限,与此功能关联的角色具有此策略:

我在网上做所有事情,为了测试它我只是使用测试按钮,到目前为止我得到的唯一响应是:{ status: 'no changes' },甚至没有显示函数内部的日志.

如何使此功能适用于我的 Amplify Cognito 用户投票中的 listGroups?是否缺少任何权限?

类似问题:

我的经理让它工作:

const AWS = require('aws-sdk');
let cognito = new AWS.CognitoIdentityServiceProvider();


exports.handler = async (event) => {
    const params = { UserPoolId: 'us-east-1_xxxxxxx'};
    
    let res = { status: 'no changes' };
    
    await cognito.listGroups(params, function(err, data) {
      if (err) {
        res = { error: err };
      }
      else {
        res = { data: data };
      }
    }).promise();
    
    
    const response = {
      statusCode: 200,
      body: JSON.stringify(res),
    };
    return response; 
};

我在 Cognito 调用结束时遗漏了 await.promise()